package com.jl.jtils.file;

import com.jl.jtils.StrUtils;

/**
 * @author jiangli
 * 文件类型
 */
public enum FileType {

    /**
     * PDF
     */
    PDF("PDF", "application/pdf"),

    /**
     * XLS
     */
    XLS("XLS", "application/vnd.ms-excel"),

    /**
     * GIF
     */
    GIF("GIF", "image/gif"),

    /**
     * JPEG
     */
    JPEG("JPEG", "image/jpeg"),

    /**
     * JPG
     */
    JPG("JPG", "image/jpeg"),

    /**
     * png格式
     */
    PNG("PNG", "application/octet-stream");

    /**
     * 扩展名
     */
    final String extension;

    /**
     * 文件类型
     */
    final String mimeType;

    FileType(String extension, String mimeType) {
        this.extension = extension;
        this.mimeType = mimeType;
    }

    public static FileType mimeTypeOf(String mimeType, String extension) {
        FileType[] values = FileType.values();
        for (FileType value : values) {
            if (StrUtils.isNotEmpty(extension)) {
                if (value.getMimeType().equals(mimeType) &&
                        extension.equalsIgnoreCase(value.getExtension())) {
                    return value;
                }
            } else {
                if (value.getMimeType().equals(mimeType)) {
                    return value;
                }
            }
        }
        return null;
    }

    public String getExtension() {
        return extension;
    }

    public String getMimeType() {
        return mimeType;
    }
}
